package org.tyemill.whitesands
{
import flash.errors.IllegalOperationError;
import flash.events.Event;
import flash.events.EventDispatcher;

public class TestContainer extends EventDispatcher
{
	// Return from a test if is synchronous
	public static const SIGNAL_SYNC:int = -13;
	
	// Status code to signal after init
	public static const STATUS_CODE_INIT:String = "init";
	
	// status code to signal after cleanup
	public static const STATUS_CODE_CLEAN:String = "clean";
	
	/** Constructor **/
	public function TestContainer()
	{
		
	}
	
	/** Called by the harness before runTest **/
	public function initialize():void
	{
		throw new IllegalOperationError("Extending class must implement");	
	}
	
	/** Called by the harness to clean up **/
	public function cleanUp():void
	{
		throw new IllegalOperationError("Extending class must implement");	
	}
	
	/** Called to signal to harness that an async test is complete **/
	protected function completeAsyncTest():void
	{
		dispatchEvent(new Event(Event.COMPLETE));	
	}
}
}